#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDebug>
#include <QIcon>


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 创建菜单栏 - QMenuBar
//    QMenuBar* mu = menuBar();
//    this->setMenuBar(mu);

    QMenuBar* mu = new QMenuBar(this);
    this->setMenuBar(mu);

    // 创建菜单 - QMenu
    // &F--> 添加快捷方式 alt + f
    QMenu* m1 = new QMenu("文件 (&F)");
    QMenu* m2 = new QMenu("编辑 (&E)");
    QMenu* m3 = new QMenu("构建 (&B)");


    // 添加到菜单栏中
    mu->addMenu(m1);
    mu->addMenu(m2);
    mu->addMenu(m3);

    // 给菜单设置图标
    QIcon open(":/open.png");
    QIcon save(":/save.png");
    m1->setIcon(open);



    // 在菜单中添加菜单项 - QAction

    QAction* a1 = new QAction("保存");
    QAction* a2 = new QAction("另存为");

    // 将菜单项添加到菜单中
    m1->addAction(a1);
    // 在菜单项之间添加分割线
    m1->addSeparator();
    m1->addAction(a2);
    // 给菜单项设置图标
    a1->setIcon(open);
    a2->setIcon(save);

    // 创建子菜单
    QMenu* m4 = new QMenu("最近打开的文件");
    m1->addMenu(m4);
    QAction* a3 = new QAction("文件1");
    QAction* a4 = new QAction("文件2");
    m4->addAction(a3);
    m4->addAction(a4);

    // 将菜单项产生的triggered信号，与槽函数关联
    connect(a1,&QAction::triggered,this,[=](){
        qDebug() << "保存被点击了";
    });

    connect(a2,&QAction::triggered,this,&MainWindow::hanler);

}
void MainWindow::hanler()
{
   qDebug() << "另存为被点击了";
}

MainWindow::~MainWindow()
{
    delete ui;
}

